import java.io.*;

/** Création d'une image de CD
  *
  * @author     Nemesis (nemesis_tt@yahoo.fr)
  * @version    09/05/04
  */

public class ImageCD extends Thread {

// Variable et constantes
// ----------------------
    private String source;
    private String dest;
    
    private static boolean stop = false;
    private static boolean pause = false;
    
// Constructeur
// ------------
    public ImageCD(String source_, String dest_) {
        super();
        
        source = source_;
        dest = dest_;
    }
    
// Exécution
// ---------
    public void run() {
        Logueur.loguer_titre("Création de l'image CD en cours");
        Logueur.loguer(this,Librairie.imageCD_init(source,dest));
        if (Logueur.noError()) {
            int nb_secteurs = Librairie.imageCD_nbSectors();
            // Copie des secteurs
            for (int i=0; i<nb_secteurs && !stop; i++) {
                while (pause)
                    try { sleep(100); }
                    catch (Exception e) {};
                Librairie.imageCD_readSector(i);
            }
            Librairie.imageCD_close();
        }
    }
    
    /** Chaine équivalente */
    public String toString() {
        return ("Image CD de " + source + " vers " + dest);
    }
    
// Attente
// -------
    public void attendre() {
        try {
            join();
        } catch (Exception e) {};
    }

// Terminaison
// -----------
    public void termine() {
        pause = false;
        stop = true;
        attendre();
    }

}
